iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
Kubernetes

從零開始的 Kubernetes 基礎觀念與實作系列 第 11 篇

# 從零開始的 Kubernetes 基礎觀念與實作 DAY11

  • 分享至 

  • xImage
  •  

在Kubernetes中,如果 Pod 需要保存資料,就不能只依賴容器本身的儲存空間。
因為Pod被刪除或重新建立後,原本容器內的資料可能會消失,所以Kubernetes提供了PV和PVC來管理持久化儲存。

PV

PV(PersistentVolume)是Kubernetes中實際提供給 Pod 使用的持久化儲存空間。
PV可以對應到不同的儲存來源,例如:本機目錄,雲端硬碟等。
下面會建立一個容量為1Gi的PV,並使用Node上的/data/demo 作為儲存位置。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-demo
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /data/demo

PVC

PVC(PersistentVolumeClaim)是Pod對儲存空間提出的需求。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-demo
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

PV 和 PVC關係

我們可以使用kubectl get pv和kubectl get pvc來取得狀態
當PVC發出後會尋找Kubernetes中符合條件且可用的PV之後進行一對一綁定。
image
image
有看到PVC的STATUS為Bound則代表它已經有和PV綁定了,在Kubernetes中PV和PVC是只能夠一對一綁定的,至於為何會需要PV和PVC而不是讓Pod直接使用儲存空間,是為了能夠避免 Pod 直接依賴特定的儲存空間。
Pod只需要透過PVC提出「需要多少容量」、「需要什麼存取模式」等需求,而不用知道實際的儲存空間位於哪裡。至於實際要使用哪一個PV,則交由Kubernetes根據PVC的需求進行配對。


上一篇
從零開始的 Kubernetes 基礎觀念與實作 DAY10
下一篇
從零開始的 Kubernetes 基礎觀念與實作 DAY12
系列文
從零開始的 Kubernetes 基礎觀念與實作 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言